#pragma once

#include <string>
#include "MioMacro.h"

/*
//가변인자 변환
#define FMT_TO_STRING(fmt, ...)	\
const int bufsize = 1024 * 64;	\
char buffer[bufsize];	\
va_list argptr;	\
int ret;	\
va_start(argptr, fmt);	\
ret = vsprintf(buffer, fmt, argptr);	\
va_end(argptr);	\
std::string msg(buffer);
*/

namespace mio
{
	class Console {
	public:
		void print(const std::string &msg);
		void print(const char *fmt, ...);

		virtual void timelog(const std::string &msg) const = 0;
		virtual void timelog(const char *fmt, ...) const = 0;

		virtual void log(const std::string &msg) const = 0;
		virtual void log(const char *fmt, ...) const = 0;

		static Console &console();
	};
}
